写了个 Node.js 命令行版的,测试了一下,和官方给出的 SSH 密码一样。
源码如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30const Crypto = require('crypto');
var salt = {
'r1d': 'A2E371B0-B34B-48A5-8C40-A7133F3B5D88',
'others': 'd44fb0960aa0-a5e6-4a30-250f-6d2df50a'
}
function getPasswd(sn) {
var md5 = Crypto.createHash('md5');
const hex = md5.update(sn + getSalt(sn)).digest('hex')
return hex.substring(0, 8);
}
function getSalt(sn) {
if (sn.includes('/')) {
return swapSalt(salt['others']);
} else {
return salt['r1d'];
}
}
function swapSalt(s) {
return s.split('-').reverse().join('-');
}
const SN = process.argv[2]
console.log(`Usage: ${SN} SN` )
const passwd = getPasswd(SN)
console.log('decrypt password:', passwd)
使用方法
复制代码到文件,index.js
命令行运行代码
1
2
3$ node index.js 36418/K1WW04216
Usage: 36418/K1WW04216 SN
decrypt password: f25b355a登录到路由器,没有ssh的,先sudo apt-get install ssh
用户名:root
密码:f25b355a看到 ARE U OK即破解成功